package com.xdb.logging;

/**
 * 日志接口
 * 
 * @author woate
 *
 */
public interface Logger {
	/**
	 * 是否开启了Debug级别日志打印
	 * 
	 * @return
	 */
	boolean isDebugEnabled();

	/**
	 * 是否开启了Info级别日志打印
	 * 
	 * @return
	 */
	boolean isInfoEnabled();

	/**
	 * 是否开启了Warn级别日志打印
	 * 
	 * @return
	 */
	boolean isWarnEnabled();

	/**
	 * 输出错误类型的日志
	 * 
	 * @param msg
	 *            日志内容
	 * @param e
	 *            异常
	 */
	void error(Object msg, Throwable e);

	/**
	 * 输出错误类型的日志
	 * 
	 * @param msg
	 *            日志内容
	 */
	void error(Object msg);
	/**
	 * 输出info类型的日志
	 * @param msg 日志内容
	 */
	void info(Object msg);
	/**
	 * 输出debug类型的日志
	 * @param msg 日志内容
	 */
	void debug(Object msg);
	/**
	 * 输出debug类型的日志
	 * @param msg 日志内容
	 * @param e
	 *            异常
	 */
	void debug(Object msg, Throwable e);

	void warn(Object msg);

	void warn(Object msg, Throwable e);

	int getErrorCount();

	int getWarnCount();

	int getInfoCount();

	int getDebugCount();

	void resetStat();

}
